Adaptive system and method for controlling vehicle idling

ABSTRACT

An idle control system for a vehicle is provided.

FIELD

The present disclosure generally relates to controlling idling of anengine, and more particularly to controlling idling of an engine toallow climate control functions to be performed in an efficient manner.

BACKGROUND

Internal combustion engines generate emissions that are undesirable fora variety of reasons. It is well known that waste products in engineexhaust such as carbon monoxide, hydrocarbons, and nitrogen oxidesadversely affect human health, and present risks to the environment.Diesel engines in particular produce considerable amounts of soot, whichcontains particulate matter, black carbon, sulfur dioxide, nitrogenoxides and other hazardous pollutants. Several government agenciesregulate emissions of such material.

Increases in engine running time produce increases in waste products andfuel consumption. Operators of Semi-tractor trailers often have sleepingquarters located within the cab to allow sleeping or other activity whenthe truck is parked and the operator is not driving. Operators oftenleave the engine running when so parked so that he/she may utilize theclimate control features of the cab and to allow powering of auxiliarydevices without unacceptable depletion of the battery of the truck'selectrical system. Accordingly, the engine of the truck is operated whenthe truck is not traveling, thereby producing waste products andconsuming fuel through idling.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a conceptual block diagram of a hardware configuration for thepresent disclosure;

FIG. 2 is graph of temperature fluctuations within the cab of a vehicleutilizing the hardware configuration of FIG. 1;

FIG. 3 is a vehicle suitable for employing the hardware configuration ofFIG. 1;

FIG. 4 is a side view of the monitor of the hardware configuration ofFIG. 1;

FIG. 5 is a first embodiment of battery connection straps suitable foruse with the vehicle of FIG. 3;

FIG. 6 is a second embodiment of battery connection straps suitable foruse with the vehicle of FIG. 3;

FIG. 7 is a perspective view of a wire harness and CEMS control unitthat are part of the hardware configuration of FIG. 1;

FIG. 8 is a perspective view of the CEMS control unit of FIG. 7; and

FIG. 9 is a block diagram of a method battery charging maintenance.

The above mentioned and other features of this disclosure, and themanner of attaining them, will become more apparent and the disclosureitself will be better understood by reference to the followingdescription of embodiments of the disclosure taken in conjunction withthe accompanying drawings.

DETAILED DESCRIPTION

The embodiments disclosed below are not intended to be exhaustive or tolimit the disclosure to the precise forms disclosed in the followingdetailed description. Rather, the embodiments are chosen and describedso that others skilled in the art may utilize their teachings.

FIG. 1 depicts a hardware configuration for use with one embodimentaccording to the present disclosure. As shown, idle control system 10includes a central “CEMS” control unit 12 that provides hardware andsoftware for performing many of the functions described herein. Controlunit 12 is connected to a monitor/interface 14 for providing informationto a driver and, optionally, obtaining driver inputs. Control unit 12 isrelatively small and lightweight. Control unit 12 approximately 137 cm³in volume and is mounted via a wire harness 100 (FIG. 7) for a combinedvolume of approximately 266 cm³. Being small, lightweight, and mountablevia wire harness 100 allows control unit 12 to be mounted in a widevariety of locations on the vehicle (within the engine compartment,under the dash, etc). Furthermore, the design allows easy placement ofcontrol unit 12 in vehicles that were not initially manufactured withsystem 10 in mind, i.e. retrofits.

Control unit 12 controls the vehicle's starter 20 to start and stopengine 22 in the manner described below. Control unit 12 is alsoconnected to LVD 16 (low voltage disconnect) switch which, under certaincircumstances described below, may be used to disconnect the vehicle'selectrical loads from batteries 18. Batteries 18 may be absorbed glassmat (AGM), deep cycle, or other types of batteries. Multiple batteries18 may be used in combination to provide longer battery operation an toobtain more energy from batteries 18. This increase in energy allowsengine 22 to achieve longer periods of deactivation, and thus increasedfuel savings and decreased emissions. Battery 18 will often be discussedherein as a singular battery, however, it should be appreciated thatmultiple combined batteries 18 are also envisioned.

LVD 16 works to provide a “parked” state operation. Parked stateprovides full power disconnect of battery 18 from loads upon detectionof stored energy in battery 18 that falls below a calculated threshold.One such threshold may be set to ensure that enough energy is maintainedin battery 18 to start engine 22. Avoiding full battery discharge (suchas after long-term vehicle parking (e.g. vacation)) eliminates needingjump starts. System 10 measures energy supplied to battery 18 duringengine 22 operation and energy delivered by battery 18 when engine 22 isoff to determine stored battery energy. Alternatively, system 10 may beconfigured to automatically start engine 22 to charge battery 18 whenstored battery energy falls below the threshold.

System 10 also includes a “run” state. During vehicle operation atdriving speeds, system 10 monitors energy provided to battery 18 as away of monitoring proper alternator 32 operation. During this state,system 10 may be configured to turn fans of heating and cooling elements26, 28, 30 on and off to properly heat/cool the cab while the operatoris driving. Controlling the fan of cooling elements 26, 60 can reduceparasitic load on engine 22 and therefore, improve fuel efficiency.

Idle control system 10 includes communications with the vehicle's enginecontrol unit “ECU” 24 to obtain a variety of information, including aspeed signal, upon which idle control system 10 bases its idle speeddeterminations. These communication are over a common truck datalink(J1939) used with electronically controlled engines. Speeddeterminations are made to achieve the ideal engine idle speed byconsidering the desire to reduce fuel consumption, alternator outputconsiderations, and block temperature or HVAC considerations.

In a “base” embodiment, idle control system 10 uses the vehicle'sheating and air conditioning system 26 to control the interiortemperature of the vehicle. The base embodiment requires that engine 22be operating whenever the heating and air conditioning system 26 isneeded to change the interior temperature. In an “expanded” embodiment,which can be operated on battery 18 power alone, idle control system 10uses one or more auxiliary devices 28, 30 to heat and cool the vehicle,either exclusively or in conjunction with the vehicle's heating and airconditioning system 26.

The expanded embodiment utilizes the modular design of system 10. Theexpanded embodiment provides for various components to be added to thesystem to achieve higher efficiencies, but are not required for thesystem to operate. Control unit 12 is automatically re-configured tocontrol an accessory, such as a fuel fired heater 28 and an A/C device30, upon connection of the accessory to control unit 12. Theseaccessories or auxiliary devices 28, 30 are optionally run off ofbattery power instead of receiving power when the vehicle idles.Accordingly, control unit 12 may control interior temperature withoutrequiring engine operation, thereby decreasing fuel consumption andemissions. Additionally, accessories 28, 30 may be used in conjunctionwith heating and air conditioning system 26 of the vehicle. If controlunit 12 is unable to cool or heat to the required temperature by usingaccessories 28, 30 then control unit 12 will also start the engine anduse the vehicles heating and air conditioning system 26 to augment theaccessory equipment 28, 30 in heating and cooling the vehicle. Heatingand air conditioning system 26 may include a fuel fired block heater 27using battery 18 power to activate when oil temperature in engine 22 istoo low.

The heating and cooling functions of idle control system 10 (allembodiments) are controlled by an algorithm. The operator does not needto select a “heating state” or a “cooling state” in the control unit 12.In the base embodiment, the driver manually sets the heating or coolingcontrols on the vehicle's heating and air conditioning system 26 (e.g.,turn the air conditioner to high so that when idle control system 10starts the vehicle, the air conditioner will be on). Idle control system10 starts and stops engine 22 to maintain the desired temperature in thevehicle. In the expanded implementation, the driver simply activatesidle control system 10, selects or sets a desired interior temperaturevia monitor 14 or otherwise, and idle control system 10 determines,based on the current interior temperature, whether to heat or cool thevehicle. In some embodiments, the driver is restricted to choose adesired temperature between 65° F. and 75° F. As indicated above, theheating and cooling may be performed using auxiliary devices 28, 30powered by batteries 18, or a combination of auxiliary devices 28, 30and the vehicle's heating and air conditioning system 26.

In either implementation, idle control system 10 periodically starts andstops the vehicle's engine 22, either to reach a desired interiortemperature, or to charge the vehicle's batteries 18 as described below.This starting and stopping is performed without regard to the positionof the vehicle's ignition switch. When the driver deactivates idlecontrol system 10, however, control of engine 22 (i.e., starting andstopping) is immediately returned to the ignition switch.

The following example illustrates the normal operation of the heatingand cooling functions of idle control system 10. This example assumes abase embodiment of idle control system 10 (i.e., without auxiliaryheating or cooling devices), an outside temperature of 90 degrees, andan initial interior temperature of 80 degrees. After parking the vehicleand activating idle control system 10, the driver uses the vehicle'smonitor 14 in bunk area 17 to select a desired temperature of 70degrees. Additionally, to lower the temperature in the bunk area, thedriver turns the vehicle's air conditioning switch to the on position.As the current temperature is higher than the desired temperature, idlecontrol system 10 determines that it must turn on the vehicle's engine22 to operate the air conditioning system. Idle control system 10 thencontinuously monitors the current temperature in the vehicle.

Idle control system 10 operates the vehicle's cooling system 26 untilthe measured interior temperature reaches a deactivation threshold,which is the desired temperature minus two degrees. It should beappreciated that while thresholds are discussed herein as variousvalues, such as “desired temperature minus two degrees,” other valuesmay be used and such values may be functions of other settings. Idlecontrol system 10 reactivates cooling system 26 when the interiortemperature rises to an activation threshold, which is the desiredtemperature plus four degrees. When heating the interior of the vehicle,idle control system 10 similarly drives the interior temperature to adeactivation threshold (the desired temperature plus two degrees), andreactivates heating system 26 when the interior temperature cools to anactivation threshold (the desired temperature minus four degrees). Therelationships between the thresholds and the desired temperature cannotbe adjusted by the driver.

Continuing with the example and referring to FIG. 2, when the measuredinterior temperature is cooled from the initial temperature of 80degrees, through the activation threshold of 74 degrees (point A),through the desired temperature of 70 degrees, to the deactivationthreshold of 68 degrees (point B), engine 22 is typically turned off,thereby deactivating cooling system 26.

As is further described below, even when the deactivation threshold isreached, idle control system 10 may cause engine 22 to continue runningif further operation of alternator 32 is needed to charge batteries 18.In that situation, idle control system 10 turns off the fans for thevehicle's cooling system 26 when the deactivation threshold is reached,which deactivates the vehicle's compressor.

When cooling system 26 is deactivated, the measured temperature of theinterior of the vehicle will slowly rise as the warmer, outside airtransfers heat through the vehicle. As shown in FIG. 2, the interiortemperature eventually reaches the activation threshold (point C) of 74degrees (the desired temperature plus four degrees). When the measuredtemperature reaches the activation threshold, idle control system 10again turns on the vehicle's engine 22 to operate cooling system 26 anddrive the interior temperature back down to the deactivation thresholdof 68 degrees (not shown in FIG. 2). This cycling continues asnecessary. By turning engine 22 on only as needed to achieve a desiredinterior temperature, idle control system 10 saves fuel and reducesemissions as compared to full time idling.

In some embodiments of idle control system 10, control unit 12 may,based on data reflecting the historical operation of system 10,determine or estimate the approximate sleep time of the driver. Forexample, if idle control system 10 has been regularly activated betweenthe hours of 10:00 p.m. and 6:00 a.m., control unit 12 may assume thatthe driver sleeps during this time. To further improve overall vehicleenergy management, idle control system 10 may be configured toautomatically adjust the desired temperature as the driver sleeps. Forexample, if the driver selects a desired temperature of 70 degrees,control unit 12 may operate in the manner described above untilmidnight, when it automatically changes the effective desiredtemperature to 74 degrees. The automated changing of the effectivedesired temperature results in a virtual set point. It is virtual inthat it was not actually set by the user, but the system is treating theset point as if it was selected by the user. This small difference indesired temperature, the four degrees between the set temperature andthe virtual set point, should go unnoticed by the sleeping driver, andwill further reduce fuel consumption and emissions by decreasing theengine 22 on time.

Under some circumstances, idle control system 10 will not be capable ofachieving the deactivation threshold temperature. For example, thevehicle's temperature control systems may perform badly as a result ofclogged filters or depleted refrigerant, or the outside temperature maybe so extreme that even a fully functional temperature control systemcould not achieve the deactivation threshold temperature. Alternatively,the driver may have inadvertently or intentionally left a window opened.It is known that some drivers are irritated by or have difficultysleeping as a result of periodic engine 22 starts and stops. Some ofthese drivers have attempted to circumvent the operation of idle controlsystems 10 by opening a window and setting a desired interiortemperature that cannot be reached with the incoming outside air. Someidle control systems 10 will run engine 22 continuously in an attempt toachieve the desired temperature, thereby eliminating the fuel andemission reduction of the system. Idle control system 10 prevents thisloss of efficiency, regardless of the cause (i.e., equipment problems ordriver carelessness/manipulation) by automatically resetting the desiredtemperature to a virtual set point in the manner described below.

Idle control system 10 automatically adjusts the desired temperature ifthe deactivation threshold associated with the current desiredtemperature is not reached within a predetermined amount of time (“theallotted time”). Idle control system 10 computes the allotted time uponreaching the activation threshold. By employing a signal from the ECUrepresenting the outside air temperature, the idle control system 10determines the difference between the outside temperature and thedesired temperature (“the temperature differential or TD”). The idlecontrol system 10 then determines whether TD is positive or negative toautomatically determine whether to heat or cool. A negative TD indicatesa heat mode and a positive TD indicates a cooling mode. A table storedin memory associates TD ranges with an expected rate of insidetemperature change (“the expected rate”) in terms of minutes per degreeFahrenheit. Table 1 depicts this expected rate look-up table.

TABLE 1 Expected Rate Negative TD TD > 70 10 50 < TD ≦ 70 8 30 < TD ≦ 506  0 ≦ TD ≦ 30 4 Positive TD TD > 35 10 25 < TD ≦ 35 8 15 < TD ≦ 25 6  0≦ TD ≦ 15 4

Using the example depicted in FIG. 2, at point C the idle control system10 computes TD (i.e., 92−70=+22, where 92 is the outside temperature and70 is the desired temperature), and accesses the look-up table todetermine an expected rate of change of 6 minutes per degree. Thus, theidle control system 10 determines an allotted time of 36 minutes toreach the deactivation threshold of 68 degrees. It should be noted thatthe expected rate is checked each time the inside temperature changesone degree. In other words, when the inside temperature reaches 73degrees, the idle control system 10 will again compute TD (i.e.,92−70=+22, the outside temperature has not changed), and ascertain theexpected rate (i.e., 6 minutes per degree) for the remainder of thecycle. Next, the idle control system 10 computes the remaining allottedtime based on this expected rate. As such, the originally calculatedallotted time may change during the cycle if TD falls into a differentrange of Table 1 (e.g., as a result of a relatively sudden change inconditions such as a drop in the outside temperature occurring atsunset).

If the inside temperature reaches the deactivation threshold before theallotted time elapses, then the HVAC system is simply deactivated asdescribed above. If, on the other hand, the inside temperature does notreach the deactivation threshold in the allotted time, then the idlecontrol system 10 computes a new desired temperature according to thefollowing formulae: Temp_(NEW)=Temp_(REACHED)+3 (for cooling) (with the“3” being derived from taking the temperature range (high limit-lowlimit) of 6 and dividing it by 2) and Temp_(NEW)=Temp_(REACHED)−3(forheating), where Temp_(NEW) is the new desired temperature andTemp_(REACHED) is the temperature reached at the end of the allottedtime.

FIG. 2 depicts a failure to reach a deactivation threshold within anallotted time. As explained above, under normal conditions the insidetemperature of the vehicle is controlled between the 74 degreeactivation threshold and the 68 degree deactivation threshold when thedesired temperature is 70 degrees. In the graph, at some point afterpoint B, an event occurred (assume the driver opened a window to 92degree outside air) preventing cooling of the vehicle interior to thedeactivation threshold within the allotted time. When the temperaturereaches point C, the idle control system 10 computes the allotted timeas 36 minutes (depicted as T₁ in FIG. 2). At the conclusion of theallotted time, however, the inside temperature is only cooled to 71degrees (point D). As the deactivation threshold was not reached withinthe allotted time, the idle control system 10 will deactivate the HVACsystem and compute a new desired temperature of 74 degrees (i.e.,Temp_(REACHED)+3). The system also calculates new deactivation andactivation thresholds of 72 degrees and 78 degrees, respectively, basedon the new desired temperature and the equations described above.

Accordingly, the HVAC system will remain off until the insidetemperature of the vehicle drifts up to the new activation threshold of78 degrees (point E). At the beginning of the next cooling cycle, theidle control system 10 again computes the allotted time to reach the newdeactivation threshold of 72 degrees. For this cycle, TD is +14 (i.e.,the outside temperature has dropped to 84, 84−70=+14), the expected rateis 4 minutes per degree, and the allotted time is 24 minutes (6 degrees(78-72) times 4 minutes per degree; depicted as T₂ in FIG. 2). Althoughnot shown in FIG. 2, if the Cummins System fails to cool the interior ofthe vehicle to the new deactivation threshold of 72 degrees within theallotted time, the system will again adjust the desired temperatureupwardly. The desired temperature may need to be automatically adjustedtwo or more times (not shown in FIG. 2), each being progressivelyfarther from the driver selected desired temperature, until adeactivation threshold is reached within the allotted time.

One consequence of this automatic readjustment is that driver initiatedattempts to cause continuous operation of engine 22 will fail. Withoutthe automatic readjustment of the system 10, a driver may be able to letin 92 degree air through a window, select a desired temperature of 70degrees, and cause continuous engine operation to maintain a relativelycomfortable interior temperature of, for example, 71 degrees. Using idlecontrol system 10, however, the above scenario results in a new desiredtemperature/virtual set point of 74 degrees (Temp_(REACHED)+3) beingcomputed after the first cooling cycle, and subsequent starts and stopsbeing based on the new deactivation threshold of 72 degrees and the newactivation threshold of 78 degrees. The more warm air the driver letsinto the vehicle, the greater the automatic adjustments to the interiortemperature of the vehicle. In certain embodiments, absolute boundariesfor the desired temperatures/virtual set point are defined, for example48° F. minimum and 82° F. maximum. Accordingly, control unit 12 may notadjust the desired temperature/virtual set point outside of this range.Similarly, the boundaries may be the trigger points for determining whencontrol unit 12 invokes the vehicle's heating and air conditioningsystem 26 to assist the accessories 28, 30 in expanded embodiments.

Another behavior programmed into idle control system 10 is a tendency toreturn to the driver selected desired temperature as conditions permit.More specifically, when idle control system 10 automatically adjusts thedesired temperature upon a failure to reach a deactivation threshold,thereby deviating from the desired temperature selected by the driver,it will, during subsequent cycles of operation, automatically adjust thetemperature back to that selected by the driver if conditions permit. Inthe example above, the driver opened the window to 90 degree air andidle control system 10 adjusted the desired temperature/virtual setpoint to 74 degrees. By reacting to changing conditions, however, idlecontrol system 10 will attempt to adjust the desired temperature back tothe driver-selected 70 degrees. For example, if the driver closes thewindow at approximately point G on the graph of FIG. 2, idle controlsystem 10 may not continue to operate using the adjusted 74 degreedesired/virtual set point temperature. Instead, if the new deactivationthreshold of 72 degrees is reached within the allotted time (again, 24minutes as was the case at point E), idle control system 10 willcontinue to further cool the interior of the vehicle as shown in thegraph. The inside temperature the idle control system 10 is able toachieve within the allotted time will become the new deactivationthreshold. The idle control system 10 will calculate a corresponding newdesired temperature and activation threshold based on the newdeactivation threshold and using the equations described above. In theexample of FIG. 2, idle control system 10 is able to reach the originaldeactivation threshold of 68 degrees (point F) within the allotted time,it will adjust the desired temperature back to the operator selected 70degrees.

In situations where idle control system 10 makes multiple automaticadjustments to the desired temperature/virtual set point (e.g., changesthe desired temperature farther and farther from the driver selectedtemperature), system 10 may also make multiple adjustments back towardthe driver selected temperature (as conditions permit) during subsequentcycles of operation. For example, assume idle control system 10automatically adjusted the desired temperature from 70 degrees, to 74degrees, to 80 degrees, to 82 degrees before the problem with thecooling system was corrected (e.g., a window was closed). During thenext cycle of operation, idle control system 10 may cool the interiorwell below the current 78 degree deactivation threshold within theallotted time. If, at the end of the allotted time an interiortemperature of 76 degrees is reached, then idle control system 10 willconsider 76 degrees to be the new deactivation threshold, and compute anadjusted desired temperature/virtual set point of 78 degrees and anactivation threshold of 82 degrees according to the equations describedabove. During the next cycle of operation, idle control system 10 maycool the vehicle to 70 degrees within the allotted time. In that case,70 degrees is the new deactivation threshold, and the desiredtemperature/virtual set point and activation threshold are 72 degreesand 76 degrees, respectively. In this manner, idle control system 10gradually returns to the driver's preferred temperature.

As indicated above, idle control system 10 automatically adjusts thedesired temperature in this manner regardless of the reason for afailure to reach a deactivation threshold. When system 10 automaticallyadjusts the desired temperature/virtual set point, however, it isassumed that some problem exists, and the driver is notified via amessage displayed on monitor 14 of idle control system 10. Idle controlsystem 10 will modify the message if it appears that driver manipulationcaused the failure to reach the deactivation threshold. Idle controlsystem 10 is programmed to assume that it should be able to cause theinterior temperature of any vehicle to deviate from the outsidetemperature by at least 10 degrees within the allotted time, as long asthe vehicle windows and doors are closed. If idle control system 10fails to reach a deactivation threshold within the allotted time, thensystem 10 checks the outside temperature signal from ECU 24. If system10 was able to cause the interior temperature to deviate from theoutside temperature by more than 10 degrees, indicating that the windowsand doors are closed, system 10 will provide a message such as “Pleasecheck filters and Freon, ensure that the temperature controls are attheir maximum settings, and ensure that all windows and doors areclosed.” If, on the other hand, system 10 was unable to cause even a 10degree deviation, indicating that a window or door is opened, theprovided message will read “Please close all windows and doors, checkfilters and Freon, and ensure that the temperature controls are at theirmaximum settings.” In addition to controlling the interior temperatureof the vehicle, idle control system 10 monitors the operation of thevehicle's batteries 18, and causes engine 22 to operate as needed tocharge batteries 18 using the vehicle's alternator 32. As previouslynoted, idle control system 10 may be used with either AGM, deep cycle,or wet cell batteries 18. In general, idle control system 10 determinesthe internal State of Charge (“SOC”) of batteries 18 based on the DCresistance of batteries 18. Current sensor 80 is used to measure thecurrent into and out of the batteries, and these measurements are usedto compute DC resistance and SOC to monitor the operation of batteries18.

Embodiments of balanced load battery couplers 36, 36′, 38, 38′ are shownin FIGS. 5 and 6. Couplers 36, 36′, 38, 38′ include electricallyconductive material that is selectively covered with molded polymerinsulation. The conductive material is exposed at load attachment points40 and battery attachment points 44. Current sensor 80 is attached atattachment point 40 of one of positive battery coupler 36, 36′, negativebattery coupler 38, 38′ or both to take readings therefrom. Attachingcurrent sensor 80 to one or both attachment points 40 provides that allcurrent from all batteries is “seen” by current sensor 80. Batteryterminals 42 electrically couple to battery attachment points 44 ofcouplers 36, 36′, 38, 38′. Thereby, couplers 36, 36′, 38, 38′ provide aconnection to each of the plurality of batteries 18. The lead distance,the distance that current must travel within each coupler 36, 36′, 38,38′, between load attachment point 40 and each battery attachment point44, is substantially equal. Couplers 36, 36′, 38, 38′ provide that eachbattery 18 sees a substantially similar load. Accordingly, batteries 18discharge at similar rates as no one battery 18 sees significantlydifferent loads than other batteries 18.

Current sensor 80, FIG. 6, is a non-intrusive current sensor thatutilizes the hall effect. Sensor 80 monitors current output ofalternator 32 and return current of battery 18. Sensor 80 also includeslines to measure voltage of alternator 32 and battery 18. Accordingly,sensor 80 receives four inputs, alternator current, battery returncurrent, alternator voltage, and battery voltage. Current sensor 80measures up to 200 A with a resolution of +/−100 mA at the lower end ofthe current scale. Sensor 80 provides many outputs including:

Voltage drop of the charging system,V_(drop)=(V_(alternator)−V_(battery)) at 100 A by alternator;

Energy being provided by alternator 32,Ah_(alternator)=I_(alternator)×Hr;

Vehicle electrical load with engine on,I_(vehicle load engine on)=(I_(alternator)−I_(battery return));

Vehicle electrical load with engine off,I_(vehicle load engine off)=ABS(I_(battery return));

Total energy load with engine on,Ahr_(alternator)=I_(vehicle load engine on)×Hr(at charge cycle);

Total energy load with engine off,Ahr_(battery)=I_(vehicle load engine off)×Hr(at charge cycle); and

Total available energy to batteries 18,Ahr_(avail)=I_(battery return)×Hr(at charge cycle). (Available energydoes not include charging battery efficiency (battery impedance)).

With respect to the readings, it should be appreciated that the greateramount of current loading on batteries 18 at any instant of time, thelower the measured battery voltage for that period of time. The trueopen circuit voltage (V_(open circuit)) for battery 18 determines thestate of charge of batteries 18. When voltage is being measured todetermine the state of charge, the amount of current loading at the timeof the measurement will give false readings. Therefore, an offset isused as related to the amount of vehicle current loading at any instantof time. The offset is either stored as a lookup table or via anequation to determine true open circuit voltage.

Sensor 80 also provides outputs including:

True open circuit voltage as related to vehicle load,V_(open circuit)=V_(battery)+DC resistance×I_(batt);

Energy stored (Ahr_(stored)) at V_(open circuit);

Energy used at V_(open circuit);

Comparisons of stored energy to used energy at V_(open circuit);

Current draw at time V_(open circuit) is measured;

Battery charging efficiency, (Ahr_(stored)/Ahr_(avail)×100 at therelated V_(open circuit) of Ahr_(stored));

True state of charge for the battery,SOC_(batt)=V_(open circuit)(battery type factor);

Determination of battery type by determining Ahr_(avail) as related toV_(open circuit);

Determination of a charging problem if there is excessive voltage dropin power lines, V_(drop)>0.5V at 100 A;

Determination of a charging problem for a bad battery by measuring Ahrgoing into batteries 18 and Ahr going out of batteries 18 to determineif batteries 18 are deteriorating in reserve capacity;

Calculation of energy being such that determinations of when to turn onthe engine can be made;

Energy use in charging batteries 18 including use ofV_(battery (engine off)) for calibration; and

Battery 18 cycle count.

Upon initial start up of idle control system 10, it is assumed thatbatteries 18 are new, or at least in very good condition. As newbatteries 18 are generally not fully charged, idle control system 10detects when batteries 18 are being charged (i.e., engine 22 isrunning), and monitors the current provided to batteries 18 byalternator 32. After some period of time, the batteries' SOC reaches anessentially steady-state condition. Idle control system 10 assumes goingforward that the SOC associated with this steady-state conditioncorresponds to the batteries' maximum SOC.

Idle control system 10 also determines whether batteries 18 are wet cellor AGM batteries based on the known internal impedance characteristicsof those battery types. Idle control system 10 is programmed with dataindicating the maximum recommended depletion of the battery types (inpercentage of maximum SOC). Knowing the type of battery, the maximumSOC, and the maximum recommended depletion percentage, idle controlsystem 10 computes the minimum SOC threshold below which batteries 18should not be drained. When the SOC of batteries 18 falls below thisminimum threshold, idle control system 10 will start the engine 22 tocharge batteries 18.

A second embodiment method for a battery charging maintenance systemalgorithm 100 is now disclosed with reference to FIG. 9. FIG. 9 shows amethod of calculating the SOC used in conjunction with a SOC calibrationcalculation. By using the two calculations together, the batterycharging maintenance system algorithm can be self-adjusting andadaptive. Such adjustment/adaptation allows maximizing of the amount ofenergy that can be taken out of a battery system for loads while stillmaintaining enough energy to start engine 22 in all conditions.

When batteries 18 are first connected to CEMS 12, the state of batteries18 is unknown including the capacity of batteries 18 at 77° F. and thehealth of batteries 18.

Current from batteries 18 is sampled once a second for 360 seconds (6minutes). The 360 current values are then summed and the sum is dividedby 3600 (the number of seconds in an hour) to arrive at the energyexpended over a 6 minute period in Ahr. (Step 102). Then, the resultingvalue is multiplied by ten to determine the average Amperes generatedper segment of Time (6 min). (Step 104)

Then, the SOC is determined, step 106, using Peukert's Law. Peukert'slaw provides the length in time (hours) that a battery will supplyenergy until the battery energy is exhausted.

Peukert's Law: T=R/(I*R/C)^(N),

-   -   T=The length of time it takes for a battery to go from 100% to        0% SOC in hours.    -   R=The rate, amount of time per a specific load for discharge of        a battery, e.g. 20 hr rate.    -   I=The amount of load being applied in Amps.    -   C=The capacity of the battery measured in Ahr to a certain Rate        (R).    -   N=The battery constant, e.g. 1.1-1.3, typical 1.2.

The Rate (R) will be held constant at 20 hr. and the Capacity (C) willbe assumed to be 400 Ahr per 25° C. at the start of a power-up cycle(battery power is first connected). This assumed capacity may be changedafter the power-up cycle, depending upon the outside temperature. Theoutside temperature will be taken via temperature sensor 25 or fromanother sensor (not pictured) near the batteries and will be consideredthe temperature of the batteries.

Peukert's Law is changed to minutes by multiplying by 60 orT=60×R/(I/C/R)^(N). The Depth of Discharge (DOD) is then calculated bytaking the ratio of 6+60×R/(I/C/R)^(N). This DOD is then summed for each6 minute segment of time. The SOC is then determined by the followingSOC=1−DOD.

Occasionally, the determination of the SOC needs to be recalibrated,step 108. The SOC is recalibrated when there is a greater than 5%difference between the calculated SOC, step 106, and a SOC determinedfrom a manufacturer's Voc, step 110.

Voc=[{(V ₀ −V ₁)/(I ₁ −I ₀)}×I ₁ ]+V ₁.

V₀=Battery voltage at t=0

V₁=Battery voltage at t=1

I₀=Amount of current being applied to the battery at t=0

I₁=Amount of current being applied to the battery at t=1

The true Voc is determined by measuring the DC Resistance (R_(batt)) ofthe battery, step 112. The DC Resistance is calculated by observing thevoltage and current (I₀ & V₀). of the battery at a certain instant oftime and then comparing the voltage and current (I₁ & V₁) at anotherinstant of time. The DC Resistance is derived by using the followingexpression (V₀−V₁)/(I₁−I₀). R_(batt) is measured every 15 minutes andthen stored & mapped to batteries SOC. If another reading can be made atthe same SOC that is greater than the 2×I₀, then this value should beused instead and put into the SOC vs R_(batt) mapping.

The voltage drop is calculated, step 114, at the end of each 6 minutesegment by V_(drop)=I_(ave)×R_(batt).

The true Voc is determined, step 110, after each 6 minute segment oftime by: Voc=V_(batt)+V_(drop).

The SOC is then calculated, Step 116, by using the true Voc with thefollowing expression:

SOC(battery)=−763.0+66.87×Voc (assuming the use of Northstar, Lifeline,or Dynasty batteries).

Next, algorithm 100 determines if the calculated SOC, step 106, variesby more than 5% from the SOC Determination via Voc, step 116. If itdoes, then the calculated SOC is replaced the SOC determined via Voc(Manufacturers Voc) and this SOC is used as the starting point forrecalculating the SOC with a new capacity, step 118.

The capacity is recalibrated, step 118, using the following expression,C=IR/(R/T)^(1/N) (See Peukert's Law above for an explanation of thevariables).

Step 118 determines if the calculated SOC by percentage of time isgreater or less than the manufacturer's determined SOC from the Voc. Ifthe calculated SOC is greater, then the battery capacity is reduced byreducing T. If calculated SOC is less, then battery capacity isincreased by increasing T.

The new value of T is obtained by either increasing or decreasing T bythe difference in the amount of error from the calculated SOC to themanufacturer's determined SOC.

Current is calculated using the average current used by summing up theI_(ave) for the different 6 min time segments & then dividing by thatnumber of 6 minute time segments.

The 20 hr rate is used for R and 1.25 is used for the value of N.

The new battery capacity (C_(calc)) is then recalculated at the currentbattery temperature in ° F. The Battery Capacity (C) is then normalizedfor 77° F. by C_(77° F. F)=C_(calc)/(0.6961+0.005271×77−0.000017×77**2)

The Battery Life Cycle Counter (BC_(life cycle)) is then reset. Thisreset is done each time the Battery Capacity Determination Algorithm isused to correct the capacity.

The expected battery capacity (C) is modified, step 120, based upon theoutside temperature and the number of battery cycles. Whereas thecapacity stored in memory, step 118, is normalized to 77° F., actualcapacity is influenced by the outside temperature.

C=C _(norm)×(0.6961+0.005271×Temp(° F.)−0.000017×Temp(° F.)**2)

Additionally, capacity decreases based upon the number of cyclesexperienced by the battery. When BC_(life cyde)=10, the battery capacityis decreased by 1 Ahr. BC_(life cycle) is reset to zero after each timethis algorithm is used to decrease the battery capacity by 1 Ahr.

The alternator and battery voltage are measured to determine theV_(Drop)=V_(Alt)−V_(Batt) when current to the batteries is measured tobe greater than 100 Amps.

V_(Drop) is an indication that there is too much resistance in thelines, which typically signifies excessive corrosion on the power lineconnections. This excessive drop in voltage reduces the amount of energybeing supplied to the batteries.

V_(Drop) is logged for each CEMS activation and trended in order to dopredictive maintenance on the power lines. A V_(Drop) of 0.5V typicallyindicates that the power line connections need to be cleaned ofcorrosion.

A non-intrusive hall effect current sensor, possibly part of sensor 80,or shunt monitors current output of the load and return current of thebattery. Using the current reading (Amp) from the load (measured at theload) plus the current reading (Amp) from the battery equates to thetotal current being supplied by the alternator, given by therelationship, I_(alternator)(A)=I_(battery)(A)+I_(load)(A). Currentsensor 80 may also be placed at the alternator, providing theI_(alternator)(A) directly.

Upon power up, CEMS considers the highest measured output of thealternator as an indicator of the maximum output of the alternator. Inother words, the system monitors the maximum output by looking at thepeak power being be produced by the alternator per a certain engine RPM.This is recorded and then considered as the maximum current rating forthe alternator. This remains true until the next power-up sequence.

If at any time the alternator output becomes less than 90% of the amountof peak power that the alternator can be provide, then the CEMS systemalerts the driver of need to replace the alternator.

During a power-up sequence, CEMS assumes a battery capacity of 400 Ahrper 25° C. and consider the batteries as new. The battery capacitychanges relative to the number of cycles, temperature, and the amount ofloading being applied. Therefore, the batteries should be replaced whenthe battery capacity reduces capacity by greater than 20%. relative tothe 25° C. temperature and a loading of 20 Amps for a 4 battery system.The batteries can still be used beyond the 20% reduction in capacity per25° C. but much caution will need to be taken to ensure that the enginecan still start.

The Hall Effect Sensor can determine direction of the current flow andtherefore orientation should be noted when placing it on a vehicle'sbattery charging system. To decrease the possibility of these sensorsbeing installed backwards, a reconfiguring algorithm is provided.

The current sensor on the battery considers whether the current isnegative or positive. When engine RPM is greater that 450 RPM, then thecurrent should be positive. If not, then put a flag in non-volatilememory that will be used to change the current readings by multiplyingthe measured current by (−1) or simply changing the sign of the measuredcurrent readings.

For the load sensor, the current will always be going in one direction.Therefore, when current is being sensed by the current sensor and thecurrent is negative, then put a flag in non-volatile memory which willbe used to change the sign of the current readings.

When the stored energy in a battery reaches a certain energy threshold,step 122, then CEMS will re-start the engine to charge the batteries.This algorithm is self learning such that with time it allows moreenergy to be used from the battery as it allows a lower DOD per thechanging conditions of ambient temperature and battery cycles. Thefollowing parameters are measured and recorded during a start sequence:engine RPM, battery voltage during start, depth of discharge (DOD) priorto start, capacity of batteries that take into account the number ofcycles and ambient temperature, and oil temperature. The engine RPMneeds to stay above 120 RPM and Battery Voltage greater than 8V during astarting event. As the ambient temperature increases so will the abilityto go lower in DOD.

Since the battery capacity has been changed due to the number offactors, e.g. battery cycles, battery temperature, and DOD of battery,the battery is discharged until the SOC of battery is such that thederived battery capacity will be able to provide enough energy to startan engine to a speed greater than 120 RPM with a V_(batt) greater than8V.

On power-up, the start sequence commences when the DOD is 50% whenconsidering a 400 Ahr battery capacity. As each cycle(charging/discharge) is completed with an engine start the following aremapped: engine RPM during cranking, average battery voltage duringcranking, oil temperature at the time of cranking, and DOD prior tocranking.

CEMS 12 automatically maps the conditions and starts the engineaccordingly.

Regarding engine on and off times, the system 10 may limit the maximumnumber of engine starts per hour (e.g., 5 starts per hour) by keepingtrack of engine off time. For example, if the desired maximum number ofstarts per hour is five (i.e., a minimum cycle time of 12 minutes) andthe engine is off for the first four minutes of the hour, but needs tobe started to maintain the interior temperature of the vehicle, controlunit 12 computes the minimum on time by subtracting the last off timefrom the minimum cycle time (i.e., minimum on time=12 minutes−4minutes=8 minutes). Thus, when the engine is started, the control unit12 causes it to continue to run for at least 8 minutes, even if thedesired interior temperature is reached earlier (during temperaturecontrol operation) or if the battery energy is replenished earlier(during battery charge operation). If more than eight minutes isrequired to achieve the desired result (temperature or charge) thecontrol unit 12 will cause the engine to continue running. Thus, thesystem ensures that the engine is not started more than once every 12minutes. On time and off time are logged for purposes of tracking theefficiency of the system (i.e. to show fuel savings and emissionsreduction.) Accordingly, system 10 is provided with a number of softwaremodules capable of saving and processing the engine and temperature datato provide a number of reports. Such data and reports may be displayedon monitor 14 upon request by the user or may be downloaded to aseparate computer. Such download may be via a corded interface, such asa J1939 cord that interfaces with system 10 or the system may havewireless data transfer such as a Wi-Fi or Bluetooth connection. The datastorage functionality provides for control module 12 to performsimilarly to the “black box” of commercial aircraft. The reports maytake the form of suggested accessories that could be added to achieveadditional fuel efficiency.

One such report is a report that determines the emissions output ofengine 22. The report receives inputs such as fuel rate, enginestatistics (size, cylinders, etc.), and load measurements to computeactual engine emissions. The result may take the form of grams per hour.The result may be compared to legislated emissions requirements.Accordingly, the output may be fed back to the CEMS to prevent engine 22from exceeding the emissions requirements. One such way that CEMS maywork to reduce emissions when nearing legislated requirements is toutilizing less than all of an engine's cylinders (i.e. going from 6 to 3cylinders).

Installation of a idle control system 10 includes the installation of anumber of sensors that ensure that proper conditions are met to allowengine 22 to be started at the direction of control unit 12. One suchsensor is a hood tilt sensor 19. Hood tilt sensor 19 monitors whetherthe hood is open or closed. When the hood is open, such as when engine22 is being worked on, control unit 12 is locked out from automaticallystarting engine 22. Accordingly, control unit 12 can not start engine 22when it is being worked on. Similarly, another sensor is a neutralposition sensor 21. Neutral position sensor 21 determines whether thevehicle is engaging a forward or rearward gear. Starting engine 22 whenit is engaging a forward or rearward gear potentially causes the vehicleto begin travel. Functionality is also included that assures thatneutral position sensor 21 is not issuing a false positive, such as afalse positive because of debris engaging sensor 21. Accordingly,neutral position sensor 21 prevents automatic starting of engine 22 fromcausing vehicle travel. Yet another possible sensor is a parking brakesensor 23. Similarly to the neutral position sensor 21, parking brakesensor 23 checks to ensure that parking brake is engaged prior to engine22 starting to help prevent driverless travel.

In addition to taking user inputs, monitor 14 also provides diagnosticinformation that assists a user in determining and correcting any faultsin the system. Such faults may be indications from the above listedsensors 19, 21, 23 or other indications. The diagnostic information mayalso include steps to be performed by the user that allow the problem tobe isolated. The provided information may also include illustrations toaid in directing the user through the steps. Monitor 14 may also provideinformation to a user regarding preventative maintenance. Suchpreventative maintenance may include suggesting replacement of selectedelectrical lines by determining at voltage drops and capacity reductionacross existing lines. Monitor 14 may also function as a multimediamonitor to play TV programs, movies (with a VCR or DVD player or othersource), WWW content, or navigation aids. In such embodiments, controlunit 12 breaks in and disrupts multimedia presentations when the system10 needs to use monitor 14 to convey system information to a user.Multimedia sources may be plugged directly into monitor 14 or may beplugged into control unit 12 that performs the input switching todetermine which input is allowed to be output. Monitor 14 may be atouchscreen such that a separate input device is not necessary. Such amonitor 14 is shown in FIG. 4. Monitor 14 of FIG. 4 includes atemperature sensor 29 therein so as to provide the functionality ofthermostat 15.

Control module 12 is optionally provided with audio speakers. Suchspeakers allow system 10 to provide an audible indication of whethersystem 10 is activated or not. Alternatively to, or in conjunction with,the speakers, system 10 may have a visual indication, such as a light ordisplay on monitor 14, to indicate whether system 10 is activated ornot.

Yet another embodiment of the present disclosure is provided fordetermining heating/cooling operation by control module 12. Controlmodule 12 is fitted with a humidity sensor. The desired temperature ischanged to favor a reduction in energy consumption. However, if heatingand cooling needs favor the driver's comfort, then the humidity readingwould be ignored. The heating/cooling algorithm incorporates a HumidityCorrection Factor Algorithm if it favors the reduction of the vehicle'senergy consumption. A Comfort Index Temperature (CIT) is calculated asCIT=1.059TMP_(ACT)+0.093H −10.44, where TMP_(ACT) is the actualtemperature and H is humidity being read from the sensor. The attachedExhibit A provides definitions for many of the abbreviations usedherein. Table 2 is a summary of when the CIT or the Actual Temperature(TMP_(ACT)) is used for when the heating/cooling is turned off/on.

TABLE 2 CIT Utilization Table CIT ≦ TMP_(ACT) During heating state, UseActual Temperature CIT ≧ TMP_(ACT) During heating state, Use ComfortIndex as the new recorded temperature CIT ≦ TMP_(ACT) During coolingstate, Use Comfort Index as the new recorded temperature CIT ≧ TMP_(ACT)During cooling state, Use Actual Temperature

The method provides for determining heating/cooling operation by usingtime and temperature slope. The method defines a Normal OperatingAlgorithm. The algorithm dictates that a maximum slope is determined bytaking a difference between the TMP_((AIR)) (the outside ambienttemperature) and the TMP_((ACT)) (Actual cab temperature withoutconsideration of a Comfort Index Temperature (CIT)). A difference lessthan zero defines a heating state and a difference greater than zerodefines a cooling state. This difference value is then categorized todetermine the Maximum Slope (S_(MAX)) allowed per the weather conditions(Table 1).

Next, a maximum time to reach temperature per the maximum slope allottedfor the outside weather conditions is calculated. The Maximum Time(T_(MAX)) is calculated by T_(MAX)=(TMP_((ACT))−LL)×S_(MAX). Where LL isthe lower limit, either the set point or the virtual set point minus therange/2 for cooling. (T_(MAX)=(HL−TMP_((ACT)))×S_(MAX) for heating).

Each time segment (TS) has a slope measured (S_(MEAS)) by determiningthe number of minutes it takes to change by 1° F. If the temperaturestarts to move in the wrong direction, then a Wrong TemperatureDirection Algorithm, discussed below, is employed. If the temperatureremains stationary, then a No Temperature Change Algorithm, discussedbelow, is employed.

The time remaining (T_(REM)) is determined by subtracting the MeasuredSlope S_(MEAS) from T_(MAX). Thus, T_(REM)=T_(MAX)−S_(MEAS). If a newS_(MAX) is observed (weather conditions have changed) or newHeating/Cooling Cycle (HCC) has started, then the T_(MAX) will berecalculated. For each new TS, a new T_(REM) is calculated by usingprevious T_(REM) and subtracting the new measured slope S_(MEAS).

If time runs out (T_(REM)=0) and the desired temperature has not beenachieved, then a Virtual Set Point (VSP) will be issued. This is derivedby taking the current cab temperature TMP_(CAB) (either the actualtemperature or CIT) and adding range/2 for cooling and subtractingrange/2 for heating. This new VSP will be used when a new HCC isinitiated or a new S_(MAX) is observed. A VSP may be modified, eitherincreased or decreased with the desire to get the VSP=SP. If a VSP hasbeen issued and the temperature has been achieved for the VSP andT_(REM)≠0, then continue heating/cooling until T_(REM)=0 or VSP=SP andthen turn off heating/cooling.

Additionally, outside temperature is determined from informationprovided by ECU 24. Whereas temperature sensor 25 is shown in FIG. 3 asbeing outside the engine compartment, other embodiments are envisionedwhere temperature sensor 25 is located within the engine compartment. Insuch embodiments, the temperature is only taken when the engine RPM>0.Once RPM=0, then the temperature will not be taken until a certainlength of time has expired because temperature sensor 25 is located inthe intake of engine 22 and is affected by the heat rejection fromengine 22 once it is off. Regardless of position, temperature sensor 25may be activated via system 10 independently of activation of ECU 24.Accordingly, current that would be drawn by ECU 24 is avoided andcurrent consumption is reduced.

As previously noted, the method includes a Wrong Temperature DirectionAlgorithm. This algorithm dictates that if the temperature proceeds morethan 2° F. in the wrong direction when the engine and/or HVAC accessoryis on (cool state the temperature increases and for heat state thetemperature decreases) then a message flashes across monitor 14 that thevehicle's HVAC is set wrong or the windows need to be closed. After thetemperature has increased 2° F. in the wrong direction, then system 10continues to run for 8 minutes to allow the condition to correct itself.If it does not, and the temperature is equal to the starting temperatureor still going in the wrong direction, then engine 22 is cycled 20 minON and 10 min OFF. After each 20 min on cycle, if the cab temperaturestarts going in the right direction and the temperature is better thanthe starting temperature, then the last temperature observed is takenand the High or Low Limit (HH or LL) is added thereto to get the coolingor heating virtual set point. The automatic cycling is stopped andnormal operation is resumed with the new virtual set point. If thecycling occurs for more than 2 hours or four (4) complete cycles, thenthe idle control system 10 discontinues temperature control and onlystarts the engine as needed to charge the vehicle batteries or until theoperator requests activation via monitor 14. Also, limits may be placedon the number of cycles permitted per hour before cab state is turnedoff.

As also previously noted, the method includes a No Temperature ChangeAlgorithm. This algorithm dictates that if the weather condition is MostSevere (i.e., it is either 70+degrees colder outside than the set pointor 35+ degrees hotter outside than the set point), then the engineand/or accessory HVAC is permitted to run continuously. Under thesecircumstances, the idle control system 10 will run continuously untileither the deactivation threshold is reached or TD decreases to one ofthe non-extreme ranges listed in Table 1.

A related behavior of the idle control system 10 is its response to afailure to change the inside temperature when TD is in a non-extremerange. A failure to change the inside temperature under these lessextreme conditions indicates a problem with the vehicle's HVAC system ordriver tampering. Accordingly, when (1) TD falls within a non-extremerange, (2) the desired temperature has not been reached, and (3) theinside temperature fails to change by at least one degree within 10minutes, the idle control system 10 will provide a message to the driveron the monitor such as “Please check filters and Freon, ensure that thetemperature controls are at their maximum settings, and ensure that allwindows and doors are closed.” The idle control system 10 will alsoestablish a new desired temperature as the current temperature plus fourdegrees (if cooling) or minus four degrees (if heating). The newdeactivation and activation thresholds are computed in the mannerdescribed above.

After establishing a new desired temperature, the idle control system 10determines whether the new desired temperature exceeds a predefinedupper limit of 82 degrees or a predefined lower limit of 48 degrees. Ifthe desired temperature has been automatically adjusted to exceed eitherlimit, the idle control system 10 causes automatic cycling of the HVACsystem in the manner described above (i.e., 20 minutes on, 10 minutesoff, 20 minutes on, etc.). At the end of each 20 minute on cycle, theidle control system 10 determines whether the inside temperature is lessthan 79 degrees (if cooling) or greater than 51 degrees (if heating). Ifthe inside temperature satisfies the appropriate condition, then theidle control system 10 establishes a new desired temperature as thecurrent temperature plus four degrees (if cooling) or minus four degrees(if heating). The new deactivation and activation thresholds arecomputed in the manner described above. Thereafter, the idle controlsystem 10 resumes normal operation.

While this disclosure has been described as having an exemplary design,the present disclosure may be further modified within the spirit andscope of this disclosure. This application is therefore intended tocover any variations, uses, or adaptations of the disclosure using itsgeneral principles. Further, this application is intended to cover suchdepartures from the present disclosure as come within known or customarypractice in the art to which this disclosure pertains.

Exhibit A

-   -   TS=Time Segment in minutes that it takes for the temperature to        go 1° F. (actual or Comfort Index).    -   HCC=Heating/Cooling Cycle is the sum of TS until the HL or LL        has been reached.    -   HL=High Limit which is the set point or virtual set point plus        Range/2 for heating.    -   LL=Low Limit which is the set point or virtual set point minus        Range/2 for cooling.    -   TMP_(CAB)=Cab Temperature is either actual temperature or the        Comfort Index Temperature (CIT)    -   TMP_(ACT)=Actual cab temperature and does not consider CIT.    -   TMP_(AIR)=Actual outside ambient temperature    -   CIT=Comfort Index Temperature as given by        1.059(TMP_(ACT))+0.093H−10.44    -   H=Humidity as observed in the cab.    -   VSP=Virtual Set Point. A new temporary set point is issued if        TMP_(CAB) cannot be achieved.    -   SP=Actual Set Point requested by operator.    -   T_(MAX)=Maximum time determined from maximum slope allowed per        the number of degrees.    -   T_(REM)=Time left from the original maximum time determined    -   S_(MEAS)=Measured slope which relates to # of minutes/1° F.    -   S_(MAX)=Maximum slope per the NOD table which relates to # of        minutes/1° F.    -   Range=HL-LL; set to =6 in the described embodiments.

1. A computer readable medium containing instructions that when executedby a computer perform steps to affect temperature, the steps comprising:defining a desired temperature as a first value; activating a HVACdevice if a current temperature achieves a first condition relative tothe desired temperature; deactivating the HVAC device if the currenttemperature achieves a second condition relative to the desiredtemperature; defining the desired temperature as a second value if thecurrent temperature does not achieve the second condition within a firsttime period.
 2. The computer readable medium of claim 1, the stepsfurther comprising: after defining the desired temperature as the secondvalue, if the current temperature does not achieve a third conditionwithin a second time period, defining the desired temperature as a thirdvalue.
 3. The computer readable medium of claim 1, the steps furthercomprising: after defining the desired temperature as the second value,if the current temperature achieves a third condition relative to thedesired temperature within a third time period, defining the desiredtemperature as the fourth value.
 4. The computer readable medium ofclaim 3, wherein the third condition is equal to the second conditionand the fourth value is equal to the first value.
 5. The computerreadable medium of claim 1, wherein the first condition is four degreeswarmer in a cooling mode and is four degrees cooler in a heating mode.6. The computer readable medium of claim 1, wherein the second conditionis two degrees cooler in a cooling mode and is two degrees warmer in aheating mode.
 7. The computer readable medium of claim 1, wherein thestep of defining the desired temperature as a second value includesusing the current temperature at the end of the first time period in acalculation to determine the second value.
 8. The computer readablemedium of claim 7, wherein the calculation to determine the second valueis: second value=(/first condition/+/second condition/)/2+currenttemperature at the end of the first time period.
 9. The computerreadable medium of claim 1, the steps further comprising: determininginformation regarding a sleep status of an individual located within thearea affected by the HVAC device.
 10. The computer readable medium ofclaim 9, the steps further comprising: adjusting the desired temperatureby considering the information regarding sleep status of the individual.11. A method of controlling a HVAC system including the steps of:obtaining a first temperature value; defining a desired temperature asthe first temperature value; activating the HVAC device if a currenttemperature achieves a first condition relative to the desiredtemperature; deactivating the HVAC device if the current temperatureachieves a second condition relative to the desired temperature;defining the desired temperature as a second value if the currenttemperature does not achieve the second condition within a first timeperiod.
 12. The method of claim 11, the steps further comprising: afterdefining the desired temperature as the second value, if the currenttemperature does not achieve a third condition within a second timeperiod, defining the desired temperature as a third value.
 13. Themethod of claim 11, the steps further comprising: after defining thedesired temperature as the second value, if the current temperatureachieves a third condition relative to the desired temperature within athird time period, defining the desired temperature as the fourth value.14. The method of claim 13, wherein the third condition is equal to thesecond condition and the fourth value is equal to the first value. 15.The method of claim 11, wherein the first condition is four degreeswarmer in a cooling mode and is four degrees cooler in a heating mode.16. The method of claim 11, wherein the second condition is two degreescooler in a cooling mode and is two degrees warmer in a heating mode.17. The method of claim 11, wherein the step of defining the desiredtemperature as a second value includes using the current temperature atthe end of the first time period in a calculation to determine thesecond value.
 18. The method of claim 17, wherein the calculation todetermine the second value is: second value=(/first condition/+/secondcondition/)/2+current temperature at the end of the first time period.19. The method of claim 11, the steps further comprising: determininginformation regarding a sleep status of an individual located within thearea affected by the HVAC device.
 20. The method of claim 19, the stepsfurther comprising: adjusting the desired temperature by considering theinformation regarding sleep status of the individual.
 21. A method ofcontrolling an HVAC system including the steps of: administering atemperature control protocol, the temperature control protocolincluding: determining information regarding a sleep status of anindividual located within the area affected by the HVAC device.
 22. Themethod of claim 21, wherein the temperature control protocol furthercomprises: adjusting the desired temperature by considering theinformation regarding sleep status of the individual.
 23. The method ofclaim 21, wherein the step of determining information regarding a sleepstatus includes accessing data regarding past sleeping of theindividual.